Repository navigation
Get theme updates and move the styles to @use - #564
Conversation
Brings in the theme from `site-commons` master, which compiles its styles with Dart Sass (SpineEventEngine/site-commons#40) and moves them to `@use`/`@forward` (SpineEventEngine/site-commons#41). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bumps [source-map-js](https://github.com/7rulnik/source-map-js) from 1.2.1 to 1.2.2. - [Release notes](https://github.com/7rulnik/source-map-js/releases) - [Changelog](https://github.com/7rulnik/source-map-js/blob/main/CHANGELOG.md) - [Commits](7rulnik/source-map-js@v1.2.1...v1.2.2) --- updated-dependencies: - dependency-name: source-map-js dependency-version: 1.2.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [postcss-selector-parser](https://github.com/postcss/postcss-selector-parser) to 7.1.6 and updates ancestor dependency [@fullhuman/postcss-purgecss](https://github.com/FullHuman/purgecss). These dependencies need to be updated together. Updates `postcss-selector-parser` from 6.1.4 to 7.1.6 - [Release notes](https://github.com/postcss/postcss-selector-parser/releases) - [Changelog](https://github.com/postcss/postcss-selector-parser/blob/main/CHANGELOG.md) - [Commits](postcss/postcss-selector-parser@6.1.4...7.1.6) Updates `@fullhuman/postcss-purgecss` from 7.0.2 to 8.0.0 - [Release notes](https://github.com/FullHuman/purgecss/releases) - [Changelog](https://github.com/FullHuman/purgecss/blob/main/CHANGELOG.md) - [Commits](FullHuman/purgecss@v7.0.2...v8.0.0) --- updated-dependencies: - dependency-name: postcss-selector-parser dependency-version: 7.1.6 dependency-type: indirect - dependency-name: "@fullhuman/postcss-purgecss" dependency-version: 8.0.0 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com>
Dart Sass 3.0 removes `@import`. `main.scss` now loads the theme and its partials with `@use`, in the same order, so the CSS comes out in the same order too. Each partial loads what it uses: the theme through `@use "theme-main" as *;`, and other partials by relative paths. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`map-get()` becomes `map.get()`, and `fade-out()` becomes `color.adjust($alpha: ...)`, which computes the same color. Dart Sass 3.0 removes the global functions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Lychee rejects the 301 of the old room URL. It used to miss the link, because it couldn't extract links past the jQuery inlined in every page. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The theme no longer inlines jQuery (SpineEventEngine/site-commons#39), so Lychee now checks whole pages. It finds 13 broken links in the docs that come from `SpineEventEngine/documentation`, which only that repository and `SpineEventEngine/validation` can fix. `lychee.toml` comes from `config`, so they go to a repo-local `.lycheeignore`, as in SpineEventEngine/documentation#96. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 00d6795c01
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
🟢 Approved
No active review issues are recorded for the website’s Dart Sass–compatible theme and Sass-module migration.
No open issues 🎉
1 file not reviewed
site/package-lock.json: Generated file
What changed in this PR
Updates the Spine website to the Dart Sass–compatible shared theme and migrates its styles to Sass modules, supporting the broader site-commons migration.
Changes:
- Updates
site-commonsand incorporates the JavaScript dependency updates from #558 and #560. - Replaces Sass
@importdirectives and deprecated functions with explicit module dependencies and modern equivalents. - Updates the Gitter link and adds targeted link-check exclusions for known broken links in imported documentation.
| File | Description |
|---|---|
site/package.json |
Updates the PurgeCSS dependency. |
site/package-lock.json |
Locks updated dependencies and their dependency trees. |
site/go.sum |
Adds checksums for the updated theme. |
site/go.mod |
Selects the Dart Sass–compatible theme revision. |
site/content/blog/spine-event-engine-1-0-is-out/index.md |
Updates the Gitter destination. |
site/assets/scss/pages/release-notes/_sidenav.scss |
Explicitly loads theme members. |
site/assets/scss/pages/release-notes/_release-notes.scss |
Explicitly loads theme members. |
site/assets/scss/pages/blog/_post.scss |
Explicitly loads theme members. |
site/assets/scss/pages/blog/_post-navigation.scss |
Explicitly loads theme members. |
site/assets/scss/pages/blog/_post-info.scss |
Explicitly loads theme members. |
site/assets/scss/pages/blog/_index.scss |
Loads blog partials with @use. |
site/assets/scss/pages/blog/_blog.scss |
Explicitly loads theme members. |
site/assets/scss/pages/blog/_blog-container.scss |
Explicitly loads theme members. |
site/assets/scss/pages/_privacy.scss |
Explicitly loads theme members. |
site/assets/scss/pages/_licenses.scss |
Loads colors, shared placeholders, and theme members. |
site/assets/scss/pages/_landing.scss |
Loads site colors and theme members. |
site/assets/scss/pages/_getting-help.scss |
Explicitly loads theme members. |
site/assets/scss/pages/_faq.scss |
Explicitly loads theme members. |
site/assets/scss/pages/_checkout.scss |
Loads vendor styles, form variables, and theme members. |
site/assets/scss/pages/_about.scss |
Loads site colors and theme members. |
site/assets/scss/modules/_subscribe-container.scss |
Loads site colors and theme members. |
site/assets/scss/modules/_result-panel.scss |
Explicitly loads theme members. |
site/assets/scss/modules/_redirect-screen.scss |
Loads theme members and adopts map.get(). |
site/assets/scss/modules/_navbar.scss |
Declares dependencies and modernizes map and color functions. |
site/assets/scss/modules/_nav-search.scss |
Loads theme members and modernizes map lookups. |
site/assets/scss/modules/_message-modal.scss |
Loads theme members and adopts map.get(). |
site/assets/scss/modules/_loader.scss |
Explicitly loads theme members. |
site/assets/scss/modules/_hero.scss |
Loads site colors and theme members. |
site/assets/scss/modules/_go-top-button.scss |
Loads theme members and adopts map.get(). |
site/assets/scss/modules/_forms.scss |
Explicitly loads theme members. |
site/assets/scss/modules/_footer.scss |
Declares dependencies and adopts color.adjust(). |
site/assets/scss/modules/_feature-cards.scss |
Loads site colors and theme members. |
site/assets/scss/modules/_checkbox.scss |
Explicitly loads theme members. |
site/assets/scss/modules/_call-to-action.scss |
Loads site colors and theme members. |
site/assets/scss/modules/_buttons.scss |
Explicitly loads theme members. |
site/assets/scss/main.scss |
Converts the stylesheet entry point to @use. |
site/assets/scss/base/_common.scss |
Loads dependencies and adopts color.adjust(). |
site/assets/scss/base/_colors.scss |
Explicitly loads theme color dependencies. |
.lycheeignore |
Adds targeted exclusions pending upstream documentation fixes. |
.agents/tasks/dart-sass-site-styles.md |
Records the migration plan and reported verification results. |
Review effort: Balanced
A PR that only adds or removes an ignored link should still get its links checked. `config` distributes this workflow, so it needs the same line, or the next `./config/pull` reverts it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Brings in SpineEventEngine/config#825: `check-links` moves its actions off Node.js 20 and shows Lychee's report on the run page. The workflow keeps the `.lycheeignore` trigger added here, which `config` doesn't have yet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Part of SpineEventEngine/site-commons#38.
This PR moves the site to the Dart Sass theme and its own styles to the Sass module system. It also brings in the JavaScript dependency updates from #558 and #560.
Changes
site-commonsgoes fromb79100dto9216e48. That brings in:@importto@usesite-commons#41: the theme moves to@use/@forward.source-map-js1.2.1 → 1.2.2 (Bump source-map-js from 1.2.1 to 1.2.2 in /site #558).postcss-selector-parser6.1.4 → 7.1.6 and@fullhuman/postcss-purgecss7.0.2 → 8.0.0 (Bump postcss-selector-parser and @fullhuman/postcss-purgecss in /site #560). Nothing in the site or the theme loads PurgeCSS. The CSS is byte-identical with and without these bumps.master:source-map-js(high) andpostcss-selector-parser(moderate).@importto@use.main.scssloads the theme and its partials with@use, in the same order, so the CSS comes out in the same order. Each partial loads what it uses:@use "theme-main" as *;;base/colors,base/commonfor%expandable-title, andmodules/formsfor$form-error-color.main.scssloads each of them before the partials that use them, so no CSS moves.map-get()→map.get().fade-out()→color.adjust($alpha: …), which computes the same color.<head>. With site-commons#39, it reads whole pages, and it finds 14 links that were already broken:.lycheeignorelists the 13 links broken in the docs this site imports, as Get theme updates documentation#96 does. One comes fromdocumentationitself and is fixed by that PR. The other 12 come from the validation docs (Remove the validation links from.lycheeignoreonce they are fixed documentation#97). Each pattern should go once the module update that fixes its link lands here..lycheeignorechanges.configdistributescheck-links.yml, so Run Check Links when.lycheeignorechanges config#826 adds the same trigger there. Until it merges,./config/pulldrops the line.config. It brings Movecheck-linksoff Node.js 20 and show Lychee's report on the run page config#825: newer action versions in Check Links, and a step that shows Lychee's report on the run page.Sass warnings
hugo --minifysass --verboseCLI, all filesmaster(LibSass)@imports inmain.scssHugo hides deprecations in every file except the entry one (
silenceDependencyDeprecations), so the CLI is what shows the partials. All 52 deprecations the site owned are gone: 35@imports, 9map-gets and 4fade-outs, eachfade-outreported twice.CSS comparison
I flattened
public/main.min.*.cssinto onecontext | selector | declarationline per declaration and diffed the results.master→ theme update: 12,764 declarations on both sides. After normalizing Dart Sass formatting and precision (fractional RGB channels, spaces in custom properties, quotes,hsla()vsrgba(), literal characters instead of escapes), what's left:calc()is folded:.ratio-*aspect ratios,.toc-colwidth.border-radius: 1px. LibSass emitted an invalidcalc($indicator-line-height / 2)..h1–.h6,.smallor.markvariants of selectors. Bootstrap's@extends no longer reach outside Bootstrap. No page uses those classes..eotsource now points tofonts/robotomono/, where the file is (site-commons#41)..table-*variant colors differ by one unit in one channel. LibSass rounded the intermediatemix()results.--code-block-paddingand--table-*now sit in rule blocks of their own, because Dart Sass emits declarations that follow nested rules in place. Each still comes before its overrides and uses.Theme update → this PR: all 12,764 declarations match. The only change is that the
@extend %expandable-titlerule lists.licenses .collapse-linkand.licenses .collapsible-panel-titlein the other order, which has no effect.map.get()andcolor.adjust()produce the same values as the functions they replace.Leading license comment
The minified CSS now starts with the theme's license comment instead of Bootstrap's MIT banner.
theme-main.scsshas a/*!header, which Dart Sass dropped under@importbut emits first under@use. The theme's PostCSS step (discardComments({removeAllButFirst: true})) keeps only that first comment. The theme's ownpreview-main.scssalready works this way. The fix belongs insite-commons.Checks
hugo --minifyandhugo -e developmentbuild.npm test: 42 tests pass.lychee.tomlover the development build: 14,664 links, none broken apart from the ignored ones.🤖 Generated with Claude Code